﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using DA_OOMModel;
using System.Data;
using DA_OOMNHibernateDAL;
using DA_OOMDALFactory;
using DA_OOMModelIDAL;
using System.Reflection;
using System.Collections;

namespace DaCredito
{
    public partial class RegistroRepasse : WebPage
    {

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            
        }
        protected override void PrePageLoad()
        {

            base.PrePageLoad();

        }
         
        protected void CarregaGrade()
        {

            // Recupera o objeto Cliente da Sessão
            int liIDCliente = Convert.ToInt32(Field_Cliente.Items[Field_Cliente.SelectedIndex].Value);
            ClientePK loClientePK = new ClientePK(liIDCliente);


            DateTime loDtRecebimentoInicial = DateTime.Parse(Field_DtRecebimentoInicial.value, new System.Globalization.CultureInfo("pt-BR"));
            DateTime loDtRecebimentoFinal = DateTime.Parse(Field_DtRecebimentoFinal.value, new System.Globalization.CultureInfo("pt-BR"));
            DateTime loDtVencimentoInicial = DateTime.Parse(Field_DtVencimentoInicial.value, new System.Globalization.CultureInfo("pt-BR"));
            DateTime loDtVencimentoFinal = DateTime.Parse(Field_DtVencimentoFinal.value, new System.Globalization.CultureInfo("pt-BR"));

            // obtem o dataset
            DataSet loDataSet = DataSourceConsultas.GetInstance().RegistroRepasse(loClientePK, loDtRecebimentoInicial, loDtRecebimentoFinal,
                                                                                    loDtVencimentoInicial, loDtVencimentoFinal);
            /*
            // Cria uma fonte de dados no relatório para o dataset
            ReportDataSource loDataSource = new ReportDataSource();

            // define o nome do datasource
            loDataSource.Name = "RPTRepasses";

            // usa primeira tabela do dataset
            loDataSource.Value = loDataSet.Tables[0];*/

            // atribui o datasource ao relatorio
            GridViewLista.DataSource = loDataSet;
            GridViewLista.DataBind();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
  
            
        }
        

        
        protected override bool OnUpdate()
        {
            List<LancamentoFinanceiroPK> loListaLancamentoFinanceiro = new List<LancamentoFinanceiroPK>();

            foreach (GridViewRow loRow in GridViewLista.Rows)
            {
                CheckBox loCheckBoxSelecionar = (CheckBox) loRow.FindControl("CheckBox1");
                if (loCheckBoxSelecionar.Checked)
                {
                    int liIdLancamento = Int32.Parse((GridViewLista.DataKeys[loRow.RowIndex].Value.ToString()));  // Int32.Parse(loRow.Cells[0].Text);
                    LancamentoFinanceiroPK loLancamentoFinanceiro = new LancamentoFinanceiroPK(liIdLancamento);
                    loListaLancamentoFinanceiro.Add(loLancamentoFinanceiro);
                }
            }
            ControladorDaCredito.GetInstance().EfetuarRepasse(loListaLancamentoFinanceiro);
            return true;
        }


        protected override void IniciaValores()
        {

            GridViewLista.Visible = true;

            this.CarregaClientes();

            Field_DtRecebimentoInicial.value = DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy");
            Field_DtRecebimentoFinal.value = DateTime.Today.ToString("dd/MM/yyyy"); 
            
            Field_DtVencimentoInicial.value = DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy");
            Field_DtVencimentoFinal.value = DateTime.Today.ToString("dd/MM/yyyy");
        }

        protected void ButtonEmitir_Click(object sender, EventArgs e)
        {
            this.CarregaGrade();
        }
        protected void CarregaClientes()
        {
            List<Cliente> loListaCliente = ControladorDaCredito.GetInstance().RecuperaListaCliente();

            Field_Cliente.Items.Add(new ListItem("<Todos>", "0"));

            foreach (Cliente loCliente in loListaCliente)
            {
                Field_Cliente.Items.Add(new ListItem(loCliente.Pessoa.PesNmPessoa, loCliente.CliIdCliente.ToString()));
            }
        }

        protected void CadastrarClienteButton_Click(object sender, EventArgs e)
        {

        }

        protected void EfetuarRepasseButton_Click(object sender, EventArgs e)
        {

            this.OnSave();
            return;

        }


    }
}
